package logicBusiness;

import DAO.ActaDao;
import models.Acta;
import java.util.List;
import javax.persistence.*;
import javax.swing.JTable;

public class ActaBL {

    private int ok = 0;
    ActaDao actadao;

    public int crearActa(Integer documento_iddocumento,
            String ciudad, String sesion, String ordenDia, String desarrolloDia,
            String compromisos, String convocatorio, String miembros, String ordenDia1,
            String desarrolloDia1) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        ActaDao dao = new ActaDao(em);
        em.getTransaction().begin();
//        Acta a = dao.crearActa(documento_iddocumento, ciudad,
//                sesion, ordenDia, desarrolloDia, compromisos, convocatorio, miembros,
//                ordenDia1, desarrolloDia1);
        em.getTransaction().commit();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
//        if (a == null) {
//            ok = 0;
//       }

//        else if (a.getDoc().equals(documento_iddocumento)) {
//            ok = 1;
//        }
        return ok;


    }

    public List obtenerListActa() {
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        actadao = new ActaDao(em);
        em.getTransaction().begin();
        List lista = null;               //coleccion de objetos con atributos de preinscrito
        lista = (List) actadao.encotrarTabla();

        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv

        return lista;
    }

    public void actualizarActa(JTable tablaentrada) {

        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        actadao = new ActaDao(em);

        for (int iterador = 0; iterador < tablaentrada.getRowCount(); iterador++) {

            if (tablaentrada.getValueAt(iterador, 5).equals("si")
                    || tablaentrada.getValueAt(iterador, 5).equals("s")
                    || tablaentrada.getValueAt(iterador, 5).equals("S")
                    || tablaentrada.getValueAt(iterador, 5).equals("SI")) {
                System.out.println((Integer) tablaentrada.getValueAt(iterador, 0));
                actadao.ActualizarActa((Integer) tablaentrada.getValueAt(iterador, 0));
                //columna 0, columna con numero de identidad

            }

        }
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
    }

    public void borrarActa(Integer idacta) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        ActaDao dao = new ActaDao(em);
        em.getTransaction().begin();
        dao.borrarActa(idacta);
        em.getTransaction().commit();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv

        //return ok;

    }

    public int encontrarActa(Integer idacta) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        ActaDao dao = new ActaDao(em);
        Acta a = dao.encontrarActa(idacta);
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        if (a == null) {
            ok = 0;
        } else if (a.getIdActa().equals(idacta)) {
            ok = a.getIdActa();
        }
        return ok;

    }

    public Acta consultarActa(Integer idacta) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        ActaDao dao = new ActaDao(em);
        Acta a = dao.encontrarActa(idacta);
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv

        return a;
    }

    public int actualizarActa(Integer idacta, Integer documento_iddocumento,
            String ciudad, String sesion, String ordenDia, String desarrolloDia,
            String compromisos, String convocatoria, String miembros, String ordenDia1,
            String desarrolloDia1) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        ActaDao dao = new ActaDao(em);
        em.getTransaction().begin();
        Acta a = dao.actualizarActa(idacta, documento_iddocumento,
                ciudad, sesion, ordenDia, desarrolloDia, compromisos, convocatoria,
                miembros, ordenDia1, desarrolloDia1);
        em.getTransaction().commit();

        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        if (a == null) {
            ok = 0;
        } else if (a.getIdActa().equals(idacta)) {
            ok = 1;
        }
        return ok;

    }

    public List<Acta> findAll() {
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        ActaDao dao = new ActaDao(em);
        List<Acta> a = dao.findAll();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        /*if (a == null) {
        ok = 0;
        } else if (a.getId().equals(idAula)) {
        ok = 1;
        }*/
        return a;
    }

    public Integer resultado() {
        int i = 0;
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        ActaDao dao = new ActaDao(em);
        return i = dao.devolverId();
    }
}
